a601eb64fb0f7ff498df148e7b4cce2acf1aa1a1,advanced/src/java/org/neo4j/impl/nioneo/xa/Command.java,PropertyCommand,writeToFile,#FileChannel#ByteBuffer#,367
Before Change
// fileChannel.write( buffer );
for ( DynamicRecord keyRecord : keyRecords )
{
if ( ( buffer.capacity() - buffer.position() ) <
keyRecord.getLength() )
{
buffer.flip();
fileChannel.write( buffer );
buffer.flip();
}
writeDynamicRecord( keyRecord, buffer );
}
for ( DynamicRecord valueRecord : valueRecords )
{
if ( ( buffer.capacity() - buffer.position() ) <
valueRecord.getLength() )
{
buffer.flip();
fileChannel.write( buffer );
buffer.flip();
}
writeDynamicRecord( valueRecord, buffer );
}
buffer.flip();
fileChannel.write( buffer );
}
static Command readCommand( NeoStore neoStore, FileChannel fileChannel,
After Change
}
@Override
public void writeToFile( FileChannel fileChannel, ByteBuffer buffer )
throws IOException
{
// id+in_use(byte)+type(int)+key_blockId(int)+prop_blockId(long)+
// prev_prop_id(int)+next_prop_id(int)+nr_key_records(int)+
// nr_value_records(int)
buffer.clear();
byte inUse = record.inUse() ?
Record.IN_USE.byteValue() : Record.NOT_IN_USE.byteValue();
buffer.put( PROP_COMMAND );
buffer.putInt( record.getId() ).put( inUse ).putInt(
record.getType().intValue() ).putInt( record.getKeyBlock()
).putLong( record.getPropBlock() ).putInt(
record.getPrevProp() ).putInt( record.getNextProp() );
Collection<DynamicRecord> keyRecords = record.getKeyRecords();
buffer.putInt( keyRecords.size() );
Collection<DynamicRecord> valueRecords = record.getValueRecords();
buffer.putInt( valueRecords.size() );
buffer.flip();
fileChannel.write( buffer );
for ( DynamicRecord keyRecord : keyRecords )
{
writeDynamicRecord( keyRecord, fileChannel, buffer );